package com.liuhouse.service.impl;

import com.liuhouse.utils.SecurityUtils;
import org.springframework.stereotype.Service;

import java.util.List;

@Service("ps")
public class PermissionService {

    /**
     * 判断当前用户是否具有permission
     * @param permission 要判断的权限
     * @return
     */
    public boolean hasPermission(String permission) {
        //如果是超级管理员,直接返回true , 返回true的话，代表有权限执行当前的方法
        if(SecurityUtils.isAdmin()){
            return true;
        }

        //否则 获取当前登录用户所具有的权限列表,如何判断是否存在permission
        //这个permission其实就是sys_menu表的perms字段的值
        List<String> permissions = SecurityUtils.getLoginUser().getPermissions();
        System.out.println(permissions);
        //contains方法是 'List集合官方'提供的方法，返回的值是布尔值,如果用户具有对应的权限就会返回true
        //如果没有对应的权限就会返回false   如果是返回false的话 就代表没有对应的权限 会报出异常
        return permissions.contains(permission);

    }
}
